// 文本分割工具函数：分为标题、项目列表、附加信息三部分
function splitTrainingText(text) {
  // 容错处理：如果文本未定义或为空，返回空对象
  if (!text) {
    return {
      title: '',
      items: [],
      duration: '',
      notes: ''
    };
  }
  
  // 按换行分割并处理每行
  const lines = text
    .split('\n')
    .map(line => line.trim())  // 去除每行前后空格和制表符
    .filter(line => line);     // 过滤空行
  
  // 如果没有内容，返回空对象
  if (lines.length === 0) {
    return {
      title: '',
      items: [],
      duration: '',
      notes: ''
    };
  }
  
  // 第一部分：标题（第一行）
  const title = lines[0];
  
  // 第三部分：持续时间和注意事项（最后两行）
  // 从末尾查找标记行
  let duration = '';
  let notes = '';
  let lastTwoLines = [];
  
  // 收集最后两行作为附加信息
  if (lines.length >= 2) {
    lastTwoLines = lines.slice(-2);
    // 识别哪一行是持续时间，哪一行是注意事项
    lastTwoLines.forEach(line => {
      if (line.startsWith('持续时间：')) {
        duration = line;
      } else if (line.startsWith('注意事项：')) {
        notes = line;
      }
    });
  }
  
  // 第二部分：项目列表（中间部分）
  // 排除第一行标题和最后两行附加信息
  const items = lines.slice(1, lines.length - 2);
  
  return {
    title,
    items,
    duration,
    notes
  };
}

// 导出函数供页面使用
module.exports = {
  splitTrainingText: splitTrainingText
};
